Skip to content

Add nebul provider v2 - #1

Merged
wynandhuizinga merged 1 commit into
devfrom
add-nebul-provider-v2
Sep 18, 2026
Merged

wynandhuizinga merged 1 commit into
devfrom
add-nebul-provider-v2

Conversation

@wynandhuizinga

@wynandhuizinga wynandhuizinga commented Sep 14, 2026

Copy link
Copy Markdown

Add https://nebul.com as a provider with its in-scope chat models (12 today), plus an hourly sync module.

Supersedes anomalyco#6876 (rebased cleanly onto current dev; resolves its remaining review items). The Ministral 3 14B lab file landed upstream in the meantime, so the only new lab entry is Alibaba's Qwen3 30B A3B Instruct.

Closes anomalyco#6879.

Sources

Data Verified against
Reasoning effort values live GET https://api.inference.nebul.io/model/info "reasoning_efforts" is the per-model source of truth (GLM-5.3-Flash: low|high|max; GLM-5.3: empty list; Mistral Medium 3.5: low|medium|high|max)
gpt-oss-120b high/medium/low via reasoning_effort Nebul docs (only model the docs demonstrate)
Wire fields Nebul docs: reasoning_effort param, no toggle, no budget; traces in message.reasoning
Lifecycle model_info.superseded_by_model_name in /model/info (GLM-5.1/5.2-FP8 → GLM-5.3; Qwen3-VL-235B-A22B-Thinking → Qwen3.5-397B-A17B)

Catalog scope

  • General chat models only: embeddings and rerankers (by mode/model_type), specialized document-OCR models (name-scoped), entries the host flags via display_tags (Guard Model / Content Safety / Private / Internal), and server-side-superseded entries all skip silently. No name lists beyond the OCR scope rule exist in the module.
  • Private/Internal-tagged entries (e.g. the approval-gated Google and Ministral IDs dropped during review) are excluded durably by this tag filter, independent of server-side timing. Two early-access models dropped during review carry no tag, so their durable exclusion still depends on server-side removal.

Reasoning controls policy

  • Effort-only where the host advertises values in /model/info or the docs demonstrate them (the models listed above). All other reasoners use reasoning_options = [] with a sourced comment; no toggles, no budgets.
  • Sync preserves authored [] exactly; if nothing is advertised and nothing authored, new syncs fail closed with a missing-reasoning-controls error instead of inventing values.

Sync deletion safety

  • Deletes only happen when the host still serves enough entries (deleteDropped ≥10 live models / ≥50% retention), preserving existing catalog models otherwise.
  • Whole-catalog faults (empty response, or no entry matching the chat-model filter) fail closed in parseModels before any file is written or deleted.

Comment thread packages/core/src/sync/providers/nebul.ts Outdated
Comment thread packages/core/src/sync/providers/nebul.ts Outdated
Comment thread providers/nebul/logo.svg
Comment thread providers/nebul/models/google/gemma-4-31B-it.toml Outdated
Comment thread models/alibaba/qwen3-30b-a3b-instruct-2507.toml
Comment thread providers/nebul/models/deepseek-ai/DeepSeek-V4.1-Flash.toml Outdated
Comment thread providers/nebul/models/google/gemma-4-31B-it.toml Outdated
Comment thread providers/nebul/models/meta-models/muse-glimmer-30b.toml Outdated
Comment thread providers/nebul/models/mistralai/Mistral-Medium-3.5-128B.toml
…odule

- 12 served chat models with live costs/limits and per-model reasoning
  controls; effort values only where the live catalog
  (https://api.inference.nebul.io/model/info) reasoning_efforts or
  Nebul docs establish accepted values, empty otherwise; no toggles or
  budgets (undocumented)
- missing lab metadata for models/alibaba/qwen3-30b-a3b-instruct-2507
- hourly sync: endpoint-authoritative deletes with ratio safety,
  whole-catalog fail-closed parse guards, base_model alias autodiscovery
- catalog scope is endpoint-driven: superseded entries follow
  model_info.superseded_by_model_name; specialized document-OCR models
  (name-scoped) and display_tags-flagged entries (Guard Model, Content
  Safety, Private, Internal) skip silently
@AlbertNegura

Copy link
Copy Markdown

Some notes: please do verify the urls, the description mentions:
"https://demos.nebul.io/pricing (USD per 1M tokens, matches live /model/info cost fields)", which is complete slop. There are multiple other references like this too.

@wynandhuizinga
wynandhuizinga merged commit 1712657 into dev Sep 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Adding Nebul as provider for opencode

2 participants